connect_engine_signals (engine->priv->native, engine);
_gtk_search_engine_simple_set_indexed_cb (GTK_SEARCH_ENGINE_SIMPLE (engine->priv->simple),
_gtk_search_engine_tracker_is_indexed,
- engine->priv->native);
+ g_object_ref (engine->priv->native),
+ g_object_unref);
}
#endif
GtkSearchEngineSimpleIsIndexed is_indexed_callback;
gpointer is_indexed_data;
+ GDestroyNotify is_indexed_data_destroy;
};
priv->active_search = NULL;
}
+ if (priv->is_indexed_data_destroy)
+ priv->is_indexed_data_destroy (priv->is_indexed_data);
+
+ priv->is_indexed_callback = NULL;
+ priv->is_indexed_data = NULL;
+ priv->is_indexed_data_destroy = NULL;
+
G_OBJECT_CLASS (_gtk_search_engine_simple_parent_class)->dispose (object);
}
void
_gtk_search_engine_simple_set_indexed_cb (GtkSearchEngineSimple *engine,
GtkSearchEngineSimpleIsIndexed callback,
- gpointer data)
+ gpointer data,
+ GDestroyNotify destroy)
{
+ if (engine->priv->is_indexed_data_destroy)
+ engine->priv->is_indexed_data_destroy (engine->priv->is_indexed_data);
+
engine->priv->is_indexed_callback = callback;
engine->priv->is_indexed_data = data;
+ engine->priv->is_indexed_data_destroy = destroy;
}
void _gtk_search_engine_simple_set_indexed_cb (GtkSearchEngineSimple *engine,
GtkSearchEngineSimpleIsIndexed callback,
- gpointer data);
+ gpointer data,
+ GDestroyNotify destroy);
G_END_DECLS